package practice4;

import java.util.Scanner;

public class P2569 {

    static int n;
    static int m;
    static int count=0;
    static int[][] matrix;  //0表示O,1表示X

    public static boolean check(int x,int y){
        boolean isOk=true;
        if(x>=3 && matrix[x-1][y]==1 && matrix[x-2][y]==1){
            isOk=false;
        }
        if(y>=3 && matrix[x][y-1]==1 && matrix[x][y-2]==1){
            isOk=false;
        }
        return isOk;
    }

    public static void dfs(int x,int y){
        if(x==n+1){
            count++;
            return;
        }
        //判断当前位置是否能放1、!((x>=3 && matrix[x-1][y]==1 && matrix[x-2][y]==1)||(y>=3 && matrix[x][y-1]==1 && matrix[x][y-2]==1))
        if(check(x,y)){
            matrix[x][y]=1;
            //设置值为1，继续深搜
            if(y<m){
                dfs(x,y+1);
            }else{
                dfs(x+1,1);
            }
            matrix[x][y]=0;

        }
        //设置值为0，继续深搜
        if(y<m){
            dfs(x,y+1);
        }else{
            dfs(x+1,1);
        }

    }


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n=sc.nextInt();
        m=sc.nextInt();
        matrix=new int[n+1][m+1];
        dfs(1,1);
        System.out.println(count);
    }
}
